package com.hopu.controller;

import com.github.pagehelper.PageInfo;
import com.hopu.dto.MyHouseDto;
import com.hopu.entity.MyHouse;
import com.hopu.service.MyHouse.MyHouseService;
import com.hopu.util.HouseResult;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * @Package: com.hopu.controller
 * @ClassName: MyHouseController
 * @Author: xiaoBao
 * @CreateTime: 2020/11/4 4:50
 * @Description: 【房屋资料功能表现层】：实现显示所有房屋信息列表，添加、修改房屋信息。
 */
@Controller("myHouseController") /**定义表现层*/
public class MyHouseController {
    @Resource(name = "myHouseServiceImple") /**引入Service服务层*/
    private MyHouseService myHouseService;


    /**
     * findAllHouseInfo 【查询所有房屋资料信息并分页显示】
     * @param current 当前页；
     * @return 将分页后的房屋资料信息返回给前台显示。
     */
    @RequestMapping("house/findAllHouseInfo.do")
    @ResponseBody
    public HouseResult<PageInfo<MyHouseDto>> findAllHouseInfo(Integer current){
        return myHouseService.findAllHouseInfo(current);
    }


    /**
     * findHouseInfoById 【根据房屋Id查询一条房屋信息（查看房屋详细信息）】
     * @param myHouse 房屋Id；
     * @return 将查询到的房屋信息放回给前台进行显示。
     */
    @RequestMapping("house/findHouseInfoById.do")
    @ResponseBody
    public HouseResult<MyHouseDto> findHouseInfoById(MyHouse myHouse){
        return myHouseService.findHouseInfoById(myHouse);
    }


    /**
     * addHouse 【添加一条房屋资料信息】
     * @param request 请求。用于获取项目根路径；
     * @param myHouse 添加房屋的相关信息。
     */
    @RequestMapping("house/addHouse.do")
    @ResponseBody
    public HouseResult<Object> addHouse(HttpServletRequest request, MyHouse myHouse){
        return myHouseService.addHouse(request,myHouse);
    }


    /**
     * uppHouseById 【根据Id修改一条房屋信息】
     * @param myHouse 房屋Id；
     * @return 将执行修改的结果放回给前台。
     */
    @RequestMapping("house/uppHouseById.do")
    @ResponseBody
    public HouseResult<Object> uppHouseById(MyHouse myHouse){
        return myHouseService.uppHouseById(myHouse);
    }
}
